package com.neouton.crm.executiceManager.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.neouton.common.util.PageUtil;
import com.neouton.crm.executiceManager.entity.ManagerContractInfoVO;
import com.neouton.crm.pm.entity.ContractInfoVO;

import javax.servlet.http.HttpServletResponse;

public interface IManagerContractService {

    /**
     * 分页查询
     *
     * @param page
     * @param entity
     * @return
     */
    PageUtil<ManagerContractInfoVO> queryContractsByPage(IPage page, ManagerContractInfoVO entity, String token);

    /**
     * 保存合同信息
     * @param contractInfo
     * @return
     */
    Integer saveOrUpdateContractInfo(ManagerContractInfoVO contractInfo,String token);

    /**
     * 更具主键获取项目信息
     * @param approvalId 审批主键
     * @return
     */
    ManagerContractInfoVO queryContractInfoByapprovalId(Integer approvalId);

    /**
     * 更具主键获取合同历史数据
     * @param approvalId 审批主键
     * @return
     */
    ManagerContractInfoVO getContractInfoHistoryByApprovalId(Integer approvalId);

    /**
     * 更具主键获取项目信息
     * @param ContractId
     * @return
     */
    ManagerContractInfoVO queryContractInfoById(Integer ContractId);

    /**
     * 合同信息通过审批
     * @param contractInfo
     * @return
     */
    Boolean rejectionContractInfo(ManagerContractInfoVO contractInfo,String token);

    /**
     * 合同信息驳回审批
     * @param contractInfo
     * @return
     */
    Boolean approveContractInfo(ManagerContractInfoVO contractInfo,String token,Boolean auto);

    /**
     * 导出合同列表
     *
     * @param response
     */
    void exportContractInfo(HttpServletResponse response, ManagerContractInfoVO entit, String token) throws Exception;

    /**
     * 删除综管合同
     * @param contractId
     * @return
     */
    Boolean deleteContractInfoById(Integer contractId);

    /**
     * 分页查询待办信息
     *
     * @param page
     * @param entity
     * @return
     */
    PageUtil<ManagerContractInfoVO> queryApprovalContractByPage(IPage page, ManagerContractInfoVO entity);


    /**
     * 分页查询已办信息
     *
     * @param page
     * @param entity
     * @return
     */
    PageUtil<ManagerContractInfoVO> queryApprovalContractDoneByPage(IPage page, ManagerContractInfoVO entity);

    /**
     * 分页查询申请记录信息
     *
     * @param page
     * @param entity
     * @return
     */
    PageUtil<ManagerContractInfoVO> queryApprovalContractRecordByPage(IPage page, ManagerContractInfoVO entity,String token);
}
